package jitiao;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

import static java.util.Arrays.sort;

/**
 * 18.1维空间中给定一-组 点的坐标，以任意两个点为直径绘制一个圆。
 * 求可以绘制的最大圆，满足该圆不包含其他点，输出其直径。
 * 说明，圆心O,半径r的圆包含某点P的条件是，r≥(O到P的距离)。
 * 输入说明:第- -行,点的数量，不超过200; .
 * 第二行开始为点二维坐标，每个点为一行，每个点的两个维度间以空格隔开,坐标值范围为
 * [-10000.0,10000.0]。
 * 输出说明:输出满足条件的圆的直径(保留小数点后3位有效数字，四舍五入)
 * 输入样例: 4
 * 0 0
 * 1 1
 * 3 0
 * 0 0.5
 * 输出样例: 2.236
 */
public class Circle {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        Map<Double, Double> mapX = new HashMap<>();
        Map<Double, Double> mapY = new HashMap<>();
        double[] xPoint = new double[n];
        double[] yPoint = new double[n];
        for (int i = 0; i < n; i++) {
            double x = sc.nextDouble();
            double y = sc.nextDouble();
            xPoint[i] = x;
            yPoint[i] = y;
            mapX.put(x, y);
            mapY.put(y, x);
        }
        sort(xPoint);
        sort(yPoint);
        double xMin = xPoint[0];
        double xMax = xPoint[n-1];
        double yMin = yPoint[0];
        double yMax = yPoint[n-1];
        System.out.println(xMin+" " +xMax+" "+yMin+" "+yMax);
        double res1 = halfLength(new double[]{xMin, mapX.get(xMin)}, new double[]{xMax, mapX.get(xMax)});
        double res2 = halfLength(new double[]{xMin, mapX.get(xMin)}, new double[]{mapY.get(yMax), yMax});
        double res3 = halfLength(new double[]{mapY.get(yMin), yMin}, new double[]{xMax, mapX.get(xMax)});
        double res4 = halfLength(new double[]{mapY.get(yMin), yMin}, new double[]{mapY.get(yMax), yMax});
        double[] res = new double[]{res1, res2, res3, res4};
        sort(res);
        System.out.println(res[3]-res[3]%0.001);
    }
    public static double halfLength(double[] a, double[] b){


        System.out.println(Math.sqrt(Math.pow(0-3, 2) + Math.pow(0-0, 2)));
        return Math.sqrt(Math.pow(a[0]-b[0], 2) + Math.pow(a[1]-b[1], 2));
    }
}
